package Thread;
//通过懒汉模式实现一下单例模式
class SingletonLazy{
   static Object object = new Object();
  //防止内存可见性,禁止指令重排序
   volatile private static SingletonLazy s;
    //获取实例的唯一方法
    public static SingletonLazy getInstance() {
        //判断对象是否创建好了,如果创建好了就不需要加锁
        //此时本身就是线程安全的
        if(s == null){
            //如果没创建好,只需要对创建操作进行加锁
            synchronized (object){
                //是否要创建对象
                if(s == null){
                    s = new SingletonLazy();
                }
            }
        }
        return s;
    }
}
public class ThreadDemo10 {
    public static void main(String[] args) {
        SingletonLazy s = SingletonLazy.getInstance();

    }
}
